/**
 * jQuery EasyUI 1.4.1
 *
 * Copyright (c) 2009-2014 www.jeasyui.com. All rights reserved.
 *
 * Licensed under the GPL license: http://www.gnu.org/licenses/gpl.txt
 * To use it on other terms please contact us at info@jeasyui.com
 *
 */
(function ($) {
    function _1(_2) {
        var _3 = $.data(_2, "searchbox");
        var _4 = _3.options;
        var _5 = $.extend(true, [], _4.icons);
        _5.push({
            iconCls: "searchbox-button", handler: function (e) {
                var t = $(e.data.target);
                var _6 = t.searchbox("options");
                _6.searcher.call(e.data.target, t.searchbox("getValue"), t.searchbox("getName"));
            }
        });
        _7();
        var _8 = _9();
        $(_2).addClass("searchbox-f").textbox($.extend({}, _4, {icons: _5, buttonText: (_8 ? _8.text : "")}));
        $(_2).attr("searchboxName", $(_2).attr("textboxName"));
        _3.searchbox = $(_2).next();
        _3.searchbox.addClass("searchbox");
        _a(_8);

        function _7() {
            if (_4.menu) {
                _3.menu = $(_4.menu).menu();
                var _b = _3.menu.menu("options");
                var _c = _b.onClick;
                _b.onClick = function (_d) {
                    _a(_d);
                    _c.call(this, _d);
                };
            } else {
                if (_3.menu) {
                    _3.menu.menu("destroy");
                }
                _3.menu = null;
            }
        };

        function _9() {
            if (_3.menu) {
                var _e = _3.menu.children("div.menu-item:first");
                _3.menu.children("div.menu-item").each(function () {
                    var _f = $.extend({}, $.parser.parseOptions(this), {selected: ($(this).attr("selected") ? true : undefined)});
                    if (_f.selected) {
                        _e = $(this);
                        return false;
                    }
                });
                return _3.menu.menu("getItem", _e[0]);
            } else {
                return null;
            }
        };

        function _a(_10) {
            if (!_10) {
                return;
            }
            $(_2).textbox("button").menubutton({
                text: _10.text,
                iconCls: (_10.iconCls || null),
                menu: _3.menu,
                menuAlign: _4.buttonAlign,
                plain: false
            });
            _3.searchbox.find("input.textbox-value").attr("name", _10.name || _10.text);
            $(_2).searchbox("resize");
        };
    };
    $.fn.searchbox = function (_11, _12) {
        if (typeof _11 == "string") {
            var _13 = $.fn.searchbox.methods[_11];
            if (_13) {
                return _13(this, _12);
            } else {
                return this.textbox(_11, _12);
            }
        }
        _11 = _11 || {};
        return this.each(function () {
            var _14 = $.data(this, "searchbox");
            if (_14) {
                $.extend(_14.options, _11);
            } else {
                $.data(this, "searchbox", {options: $.extend({}, $.fn.searchbox.defaults, $.fn.searchbox.parseOptions(this), _11)});
            }
            _1(this);
        });
    };
    $.fn.searchbox.methods = {
        options: function (jq) {
            var _15 = jq.textbox("options");
            return $.extend($.data(jq[0], "searchbox").options, {
                width: _15.width,
                value: _15.value,
                originalValue: _15.originalValue,
                disabled: _15.disabled,
                readonly: _15.readonly
            });
        }, menu: function (jq) {
            return $.data(jq[0], "searchbox").menu;
        }, getName: function (jq) {
            return $.data(jq[0], "searchbox").searchbox.find("input.textbox-value").attr("name");
        }, selectName: function (jq, _16) {
            return jq.each(function () {
                var _17 = $.data(this, "searchbox").menu;
                if (_17) {
                    _17.children("div.menu-item").each(function () {
                        var _18 = _17.menu("getItem", this);
                        if (_18.name == _16) {
                            $(this).triggerHandler("click");
                            return false;
                        }
                    });
                }
            });
        }, destroy: function (jq) {
            return jq.each(function () {
                var _19 = $(this).searchbox("menu");
                if (_19) {
                    _19.menu("destroy");
                }
                $(this).textbox("destroy");
            });
        }
    };
    $.fn.searchbox.parseOptions = function (_1a) {
        var t = $(_1a);
        return $.extend({}, $.fn.textbox.parseOptions(_1a), $.parser.parseOptions(_1a, ["menu"]), {searcher: (t.attr("searcher") ? eval(t.attr("searcher")) : undefined)});
    };
    $.fn.searchbox.defaults = $.extend({}, $.fn.textbox.defaults, {
        inputEvents: $.extend({}, $.fn.textbox.defaults.inputEvents, {
            keydown: function (e) {
                if (e.keyCode == 13) {
                    e.preventDefault();
                    var t = $(e.data.target);
                    var _1b = t.searchbox("options");
                    t.searchbox("setValue", $(this).val());
                    _1b.searcher.call(e.data.target, t.searchbox("getValue"), t.searchbox("getName"));
                    return false;
                }
            }
        }), buttonAlign: "left", menu: null, searcher: function (_1c, _1d) {
        }
    });
})(jQuery);

